<?php
/**
 * Implenta las funciones necesarias para gestionar un usuario del sistema
 *
 * @author Daniel Cardoza, Gary Dos Santos, Freddy Rodriguez
 */
class DBClienteDAO {

    private $DBConn = null;

    public function  __construct() {
        $conexion = new conexion();
        $this->DBConn = $conexion->setConnect();
    }

     /**
     *Devuelve un vector con toda la informacion del cliente que tenga el id
     * que entra por parametro
     *
     * @param <int> $id
     * @return <Array> $fila
     * @return <bool> false
     * @test
     *
     */
    public function getCliente( $id ) {
        $this->DBConn->consulta( "SELECT *
                                FROM Cliente
                                WHERE CLT_ID = $id
                                AND CLT_STATUS = 1" );

        if ( $this->DBConn->filasAfectadas() != -1){
            $fila = $this->DBConn->extraer_registro();
            return $fila;
        } else {
            return false;
        }

    }

    /**
     * Setea un bloque con la informacion del cliente
     *
     * @param <panel> $plantillaCON
     * @param <block> $block
     * @test
     */
    public function setBlockCliente( $plantillaCON , $block, $privilegio ) {
        $hBlock = $plantillaCON->setBlock( $block );
        $USR_ID = $_SESSION['USR_ID'];

            $this->DBConn->consulta( "SELECT *
                                FROM Cliente
                                WHERE CLT_STATUS = 1
                                AND CLT_USR_ID = $USR_ID" );
  
        while ( $fila = $this->DBConn->extraer_registro() ) {
            $plantillaCON->add( $fila );
            $plantillaCON->concat( $hBlock );
        }

    }

    /**
     * Setea un bloque con la informacion del cliente
     *
     * @param <panel> $plantillaCON
     * @param <block> $block
     * @test
     */
    public function setBlockClienteOtros( $plantillaCON , $block, $privilegio ) {
        $hBlock = $plantillaCON->setBlock( $block );
        $USR_ID = $_SESSION['USR_ID'];

        $this->DBConn->consulta( "SELECT *
                            FROM Cliente
                            WHERE CLT_STATUS = 1
                            AND CLT_USR_ID <> $USR_ID" );

        while ( $fila = $this->DBConn->extraer_registro() ) {
            $plantillaCON->add( $fila );
            $plantillaCON->concat( $hBlock );
        }

    }

     /**
     *Insertar un cliente en la base de datos y lo asigna al id del usuario
     * que se pasa por parametro
     *
     * @param <ind> $USR_ID
     * @return <bool> true
     * @return <bool> false
     * @test
     *
     */
    public function setCliente( $USR_ID ) {
        extract( $_POST );

        $CLT_EMPRESA = addslashes($CLT_EMPRESA);
        $CLT_DIRECCION = addslashes($CLT_DIRECCION);
        if ( isset ( $CLT_ID ) ){
            $this->DBConn->consulta( "INSERT INTO Cliente
                                VALUES ($CLT_ID,'$CLT_RAZON_SOCIAL','$CLT_EMPRESA','$CLT_NOMBRE',
                                '$CLT_APELLIDO','$CLT_DIRECCION','$CLT_TELEFONO',
                                '$CLT_TELEFONO_CEL','$CLT_TELEFONO_FAX','$CLT_TELEFONO_OTRO',
                                '$CLT_EMAIL',1,$USR_ID)" );
        } else {
            $this->DBConn->consulta( "INSERT INTO Cliente
                                VALUES (NULL,'$CLT_RAZON_SOCIAL','$CLT_EMPRESA','$CLT_NOMBRE',
                                '$CLT_APELLIDO','$CLT_DIRECCION','$CLT_TELEFONO',
                                '$CLT_TELEFONO_CEL','$CLT_TELEFONO_FAX','$CLT_TELEFONO_OTRO',
                                '$CLT_EMAIL',1,$USR_ID)" );
        }
        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }

    }

     /**
     *Actualiza la informacion de un cliente
     *
     * @return <bool> true
     * @return <bool> false
     * @test
     *
     */
    public function updateCliente(){
        extract ( $_POST );

        $CLT_EMPRESA = addslashes($CLT_EMPRESA);
        $CLT_DIRECCION = addslashes($CLT_DIRECCION);
        $this->DBConn->consulta( "UPDATE Cliente
                            SET CLT_RAZON_SOCIAL = '$CLT_RAZON_SOCIAL',
                            CLT_NOMBRE = '$CLT_NOMBRE',
                            CLT_EMPRESA = '$CLT_EMPRESA',
                            CLT_APELLIDO = '$CLT_APELLIDO',
                            CLT_DIRECCION = '$CLT_DIRECCION',
                            CLT_TELEFONO = '$CLT_TELEFONO',
                            CLT_TELEFONO_CEL = '$CLT_TELEFONO_CEL',
                            CLT_TELEFONO_FAX = '$CLT_TELEFONO_FAX',
                            CLT_TELEFONO_OTRO = '$CLT_TELEFONO_OTRO',
                            CLT_EMAIL = '$CLT_EMAIL'
                            WHERE CLT_ID = $CLT_ID" );

        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }

    }

     /**
     *Elimina la informacion de un cliente
     *
     * @return <bool> true
     * @return <bool> false
     * @test
     *
     */
    public function eliminarCliente(){
        extract( $_GET );
        $this->DBConn->consulta( "UPDATE Cliente
                            SET CLT_STATUS = 0
                            WHERE CLT_ID = $CLT_ID" );

        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }

    }
}

?>
